(function (mui, $) {

// 普通页面跳转
$('body').delegate('[data-url]', 'tap', function () {
	app.open($(this).attr('data-url'));
});

// 显示申请售后原因
$(".icon-unfold").parents(".mui-text-right").on("tap", function() {
	$(".apply-select").stop(true).slideToggle();
});

// 删除上传图片
$('body').delegate('.image-item .icon-close', 'tap', function () {
	$(this).closest('.image-item').remove();
});

// 回到首页
$('.btn-app-home').on('tap', function () {
	plus.webview.getWebviewById('home.html').evalJS('app.home()');
});

// 选择头像
$('.btn-add-image').on('tap', function () {
	var btns = [{title:"拍照" }, {title: "从手机相册选择"}];
	
	plus.nativeUI.actionSheet({
		title   : "选择照片",
		cancel  : "取消",
		buttons : btns
	}, function(btn) {
		switch (btn.index) {
			case 0:
				break;
			case 1:
				getFromCamera();
				break;
			case 2:
				getFromGallery();
				break;
			default:
				break
		}
	});
});

function getFromCamera () {
	var camera = plus.camera.getCamera();
	camera.captureImage(function(e) {
		plus.io.resolveLocalFileSystemURL(e, function(entry) {
			upload([{'path':entry.toLocalURL()}]);
		}, function(e) {
			plus.nativeUI.toast("读取拍照文件错误：" + e.message);
		});
	}, function(res) {
		plus.nativeUI.toast(res);
	}, {
		filename: "_doc/head.jpg"
	});
}

function getFromGallery () {
	plus.gallery.pick(function(e) {
		var queue = [];
		for (var i in e.files) {
			queue.push({'path':e.files[i]});
		}
		upload(queue);
	}, function(e) {}, {
		filter: "image", multiple:true
	});
};

function cutter (image) {
	upload(image);
}

function upload (images) {
	app.log('上传数据：', images);
	plus.nativeUI.showWaiting('正在处理...');
	function _cb (result, status) {
		var res = result.responseText;
		plus.nativeUI.closeWaiting();
		
		try { res = JSON.parse(res); } catch (e) { status = 404 }
		
		if (status == 200) {
			//plus.nativeUI.toast('上传文件成功');
			app.log('上传结果：', res);
			
			if (500 == res.code) { app.toast('你还未登录'); return; }
			if (300 == res.code) { app.toast(res.msg); return; }
			if (200 != res.code) { app.toast('请求失败'); return; }
			//if (res.msg) { app.toast(res.msg); }
			append(res);
		} else {
			app.log('上传头像失败：', result.responseText);
			plus.nativeUI.toast('上传图片失败');
		}
	}
	var task = plus.uploader.createUpload(app.url('Files/Upload/appUpload'), { method:"POST",blocksize:204800,priority:100 }, _cb);
	for (var i in images) {
		task.addFile(images[i].path, {'name':images[i].name});
	}
	//task.addData('thumb', image);
	task.addData('token', app.store('token'));
	task.addData('action', 'uploadimage');
	
	task.start();
}

function append (images) {
	var tpl = app.tpl('tpl-image', images);
	$('.btn-add-image').before(tpl);
}

mui.plusReady(function () {
	problems();
});

function problems () {
	plus.nativeUI.showWaiting();
	$.ajax({
		'dataType' : 'json',
		'type'     : 'post',
		'url'      : app.url('App/Goods/AfterSales/problemType'),
		'data'     : {'token':app.store('token')},
	})
	.fail(function (res) {
		// 失败回调
		plus.nativeUI.closeWaiting();
		app.log('取得问题类型列表失败：', res);
		app.toast('取得问题类型列表失败');
	})
	.done(function (res) {
		// 成功回调
		plus.nativeUI.closeWaiting();
		app.log('问题类型：', res);
		
		if (500 == res.code) { app.toast('你还未登录'); return; }
		if (300 == res.code) { app.toast(res.msg); return; }
		if (200 != res.code) { app.toast('请求失败'); return; }
		if (res.msg) { app.toast(res.msg); }
		
		$('.apply-select').html(app.tpl('tpl-problem', res));
	})
	;
}
// 选择退款原因
$('body').delegate('.apply-select .mui-radio', 'tap', function () {
	//$(".apply-select").stop(true).slideToggle();
});

// 提交售后
$('.btn-submit').on('tap', function () {
	var dom = this, view = plus.webview.currentWebview();
	var data = {
        'order_id'              : view.extras.order_id, //必须,订单ID
        'contacts'              : $('[name=name]').val(),//联系人姓名必须
        'mobile'                : $('[name=phone]').val(),//联系人电话必须
        'description'           : $('[name=description]').val(),//必填且不能小于十个字符
        'problem_type_id'       : $('[name=problem]:checked').val(),//申请售后的类型
        'problem_type_name'     : $('[name=problem]:checked').siblings('label').text(),//可选(有问题类型名称,必须有问题类型ID)
        'images'                : [],//图片  可选
	};
	$('.image-item').each(function (idx, item) {
		data.images.push($(item).attr('data-path'));
	});
	if (!data.problem_type_id) { alert('请选择问题类型'); return; }
	if (!data.contacts)        { alert('请输入联系人姓名'); return; }
	if (!data.mobile)          { alert('请输入联系人电话'); return; }
	if (!data.description || data.description.length < 10) { alert('详细描述最少10个字'); return; }
	if (data.images.length < 1 || data.images.length > 9) { alert('请上传1至9张关于产品售后的原因的照片'); return; }
	
	app.log('申请售后：', data);
	$(dom).prop('disabled', true);
	plus.nativeUI.showWaiting();
	$.ajax({
		'dataType' : 'json',
		'type'     : 'post',
		'url'      : app.url('App/Goods/AfterSales/apply'),
		'data'     : {'token':app.store('token'), 'data':data},
	})
	.fail(function (res) {
		// 失败回调
		plus.nativeUI.closeWaiting();
		app.log('申请售后失败：', res);
		app.toast('申请售后失败');
		$(dom).prop('disabled', false);
	})
	.done(function (res) {
		// 成功回调
		plus.nativeUI.closeWaiting();
		app.log('申请售后：', res);
		$(dom).prop('disabled', false);
		
		if (500 == res.code) { app.toast('你还未登录'); return; }
		if (300 == res.code) { app.toast(res.msg); return; }
		if (200 != res.code) { app.toast('请求失败'); return; }
		if (res.msg) { app.toast(res.msg); }
		
		try {
			plus.webview.getWebviewById(view.extras._FROM_).evalJS('page.refresh()');
		} catch (e) {}
		view.close();
	})
	;
});
// 普通页面跳转
$('.btn-submit').delegate('[data-url]', 'tap', function () {
	app.open($(this).attr('data-private'));
});

})(mui, $);
